﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TCHSHue.BLL;
using TCHSHue.DAL;
using System.IO;

namespace TCHSHue.Modules.AdminControl.BaiViet
{
    public partial class ctrBaiVietCreate : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var user = (DAL.User)Session["userDangNhap"];
            if (user != null)
            {
                if (user.quyen != ((int)Quyen.Admin).ToString())
                    ckhTinhTrang.Enabled = false;
            }
            if (!IsPostBack)
                LoadTheLoai();
            string mode = Request.QueryString["mode"];
            if (mode == "thembaiviet")
            {
                lbCreate.Text = "Thêm mới";
            }
            else
            {
                string idBaiViet = Request.QueryString["id"];
                var bv = BaiVietBLL.getBaiViet(idBaiViet);
                if (bv != null)
                {
                    lbCreate.Text = "Cập nhật";
                    txtTieuDe.Text = Server.HtmlDecode(bv.chuDe);
                    txtNoiDung.Text = Server.HtmlDecode(bv.noiDung);
                    txtNoiDungTomTat.Text = Server.HtmlDecode(bv.noiDungTomTat);
                    if (!string.IsNullOrEmpty(bv.anhDaiDienUrl))
                        imgDaiDien.ImageUrl = "~/Upload/ImageArticle/" + bv.anhDaiDienUrl;
                    ckhTinhTrang.Checked = bv.tinhTrang.Value == (int)TinhTrangBaiViet.ChuaDuyet ? false : true;
                    var item = ddlTheLoai.Items.FindByValue(bv.maTheLoai.Value.ToString());
                    ddlTheLoai.SelectedIndex = ddlTheLoai.Items.IndexOf(item);
                }
                else
                {
                    Page.RegisterClientScriptBlock("ChinhPhuong", "<SCRIPT Language='JavaScript'> alert('Trạng thái hồ sơ này không tồn tại'); </SCRIPT>");
                    Response.Redirect("~/Modules/Admin.aspx?mode=trangthaihoso");
                }
            }

        }
        void LoadTheLoai()
        {
            ddlTheLoai.DataSource = TheLoaiBLL.getList();
            ddlTheLoai.DataTextField = "tenTheLoai";
            ddlTheLoai.DataValueField = "maTheLoai";
            ddlTheLoai.DataBind();
        }

        protected void bntLuu_Click(object sender, EventArgs e)
        {
            thongBao.Visible = true;
            var user = (DAL.User)Session["userDangNhap"];
            string mode = Request.QueryString["mode"];
            string fileName = "";
            if (TaiAnh(out fileName))
            {
                var tieuDe = Server.HtmlEncode(txtTieuDe.Text.Trim());
                var noiDungTomTat = Server.HtmlEncode(txtNoiDungTomTat.Text.Trim());
                var noiDung = Server.HtmlEncode(txtNoiDung.Text.Trim());
                var maTheLoai = int.Parse(ddlTheLoai.SelectedValue);
                var tinhTrang = ckhTinhTrang.Checked ? TinhTrangBaiViet.DaDuyet : TinhTrangBaiViet.ChuaDuyet;
                var ngayViet = DateTime.Now.Date;
                Guid maBaiViet;
                //Thêm mới bài viết
                if (mode == "thembaiviet")
                {
                    maBaiViet = Guid.NewGuid();
                    var bv = new DAL.BaiViet() { anhDaiDienUrl = fileName, maBaiViet = maBaiViet, maTheLoai = maTheLoai, maUser = user.tenDangNhap, ngayViet = ngayViet, tinhTrang = (int)tinhTrang, noiDung = noiDung, noiDungTomTat = noiDungTomTat, chuDe = tieuDe };
                    if (BaiVietBLL.create(bv))
                        lbThongBao.Text = "Thêm mới bài viết thành công!";
                    else
                        lbThongBao.Text = "Thêm mới bài viết thất bại!";
                    txtTieuDe.Text = "";
                    txtNoiDungTomTat.Text = "";
                    txtNoiDung.Text = "";
                    imgDaiDien.ImageUrl = "~/Upload/ImageArticle/no_image.jpg";
                    txtTieuDe.Focus();
                }
                //Cập nhật
                else
                {
                    string idBaiViet = Request.QueryString["id"];
                    maBaiViet = new Guid(idBaiViet);
                    var bvCu = BaiVietBLL.getBaiViet(idBaiViet);
                    var bv = new DAL.BaiViet() { maBaiViet = maBaiViet, maTheLoai = maTheLoai, maUser = user.tenDangNhap, ngayViet = ngayViet, tinhTrang = (int)tinhTrang, noiDung = noiDung, noiDungTomTat = noiDungTomTat, chuDe = tieuDe };
                    //Thay đổi ảnh đại diện
                    if (!string.IsNullOrEmpty(fileName))
                    {
                        if (bvCu != null && !string.IsNullOrEmpty(bvCu.anhDaiDienUrl) && File.Exists(Server.MapPath("~/Upload/ImageArticle/" + bvCu.anhDaiDienUrl)))
                            File.Delete(Server.MapPath("~/Upload/ImageArticle/" + bvCu.anhDaiDienUrl));
                        bv.anhDaiDienUrl = fileName;
                        imgDaiDien.ImageUrl = "~/Upload/ImageArticle/" + fileName;
                    }

                    if (BaiVietBLL.update(bv))
                        lbThongBao.Text = "Cập nhật bài viết thành công!";
                    else
                        lbThongBao.Text = "Cập nhật bài viết thất bại!";
                }
                //if (ckhNoiBat.Checked)
                //{
                //    TheLoaiBLL.createBaiVietNoiBat(maTheLoai, maBaiViet);
                //}
            }
            else
            {
                if (mode == "thembaiviet")
                    lbThongBao.Text = "Thêm mới bài viết thất bại!";
                else lbThongBao.Text = "Cập nhật bài viết thất bại!";
            }
            anhDaiDienUpload.Dispose();
        }
        bool TaiAnh(out string fileName)
        {
            fileName = "";
            try
            {
                HttpFileCollection hfc = Request.Files;
                for (int i = 0; i < hfc.Count; i++)
                {
                    HttpPostedFile hpf = hfc[i];
                    if (string.IsNullOrEmpty(hpf.FileName))
                        return true;
                    if (hpf.ContentLength > 0 && hpf.ContentLength < 5000000)
                    {
                        if (hpf.ContentType == "image/png" || hpf.ContentType == "image/jpeg")
                        {
                            fileName = string.Format("{0:dd_mm_yy_hh_mm}", DateTime.Now) + System.IO.Path.GetFileName(hpf.FileName);
                            hpf.SaveAs(Server.MapPath("~/Upload/ImageArticle") + "/" + fileName);
                            return true;
                        }
                        else
                        {
                            lbThongBaoAnh.Text = "Ảnh sai định dạng";
                            lbThongBaoAnh.Visible = true;

                            return false;
                        }
                    }
                    else
                    {
                        lbThongBaoAnh.Text = "Ảnh quá lớn";
                        lbThongBaoAnh.Visible = true;

                        return false;
                    }
                }

                return true;
            }
            catch (Exception ex)
            {

                return false;
            }
        }
    }
}